package mysql8学习.高级.第01章_Linux下MySQL的安装与使用;

/**
 * 严格模式:
 *  出现上面宽松模式的错误，应该报错才对，
 *  所以MySQL5.7版本就将sqL_mode默认值改为了严格模式。
 *  所以在生产等环境中,我们必须采用的是严格模式，
 *  进而开发、测试环境的数据库也必须要设置，这样在开发测试阶段就可以发现问题。
 *  并且我们即便是用的 MySQL5.6, 也应该自行将其改为严格模式。
 *  开发经验: MySQL等数据库总想把关于数据的所有操作都自己包揽下来，包括数据的校验，
 *  其实开发中，我们应该在自己开发的项目程序级别将这些校验给做了，
 *  虽然写项目的时候麻烦了一些步骤,但是这样做之后,我们在进
 *  行数据库迁移或者在项目的迁移时，就会方便很多.
 *
 * 改为严格模式后可能会存在的问题:
 *  若设置模式中包含了NO_ZERO_DATE ,
 *  那么MySQL数据库不允许插入零日期，插入零日期会抛出错误而不是警告。
 *  例如，表中含字段 TIMESTAMP 列(如果未声明为NULL或显示DEFAULT子句)
 *  将自动分配DEFAULT 0000-00-00 00:00:00' (零时间戳)，
 *  这显然是不满足 sql_mode 中的 NO_ZERO_DATE 而报错。
 *
 */
public class N2_sql_mode的严格模式 {
}
